package com.xbongbong.saas.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.pro.knowledge.base.pojo.dto.KnowledgeBaseBatchDeleteDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.KnowledgeBaseDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.KnowledgeBaseDetailDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.KnowledgeBaseUpdateDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.KnowledgeCatalogueAddDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.KnowledgeCatalogueDelDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.KnowledgeCatalogueNameLikeDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.KnowledgeCatalogueSortDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.KnowledgeCatalogueUpdateDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.KnowledgeHighlighterListDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.KnowledgeShowDTO;
import com.xbongbong.pro.knowledge.base.pojo.vo.KnowledgeBaseListVO;
import com.xbongbong.pro.knowledge.base.pojo.vo.KnowledgeCatalogueListVO;
import com.xbongbong.pro.knowledge.base.pojo.vo.KnowledgeCloudCallRedirectsVO;
import com.xbongbong.pro.knowledge.base.pojo.vo.KnowledgeDetailsVO;
import com.xbongbong.pro.knowledge.base.pojo.vo.KnowledgeHighlighterListVO;

/**
 * @Author mingliang
 * @Description 知识库目录
 * @Date 2022/6/22 10:40
 **/
public interface KnowledgeBaseService {

    /**
     * @param baseDTO
     * @Author mingliang
     * @Description 获得该公司下的知识库列表，按钮权限
     * @Date 2022/6/22 10:56
     **/
    KnowledgeBaseListVO knowledgeBaseList(BaseDTO baseDTO) throws XbbException;

    /**
     * @param knowledgeBaseDTO
     * @Author mingliang
     * @Description 添加知识库
     * @Date 2022/6/23 15:09
     **/
    BaseVO addKnowledgeBase(KnowledgeBaseDTO knowledgeBaseDTO) throws XbbException;

    /**
     * @param knowledgeBaseUpdateDTO
     * @Author mingliang
     * @Description 修改知识库
     * @Date 2022/6/23 15:09
     **/
    BaseVO updateKnowledgeBase(KnowledgeBaseUpdateDTO knowledgeBaseUpdateDTO) throws XbbException;

    /**
     * @param knowledgeBaseDetailDTO
     * @Author mingliang
     * @Description 删除知识库
     * @Date 2022/6/23 15:10
     **/
    BaseVO knowledgeBaseDelete(KnowledgeBaseDetailDTO knowledgeBaseDetailDTO) throws XbbException;

    /**
     * @Author mingliang
     * @Description 添加目录接口
     * @Date 2022/6/27 16:20
     * @param knowledgeCatalogueAddDTO
     **/
    BaseVO addKnowledgeCatalogue(KnowledgeCatalogueAddDTO knowledgeCatalogueAddDTO) throws XbbException;

    /**
     * @Author mingliang
     * @Description 目录列表查询
     * @Date 2022/6/27 16:20
     * @param knowledgeBaseDetailDTO
     **/
    KnowledgeCatalogueListVO knowledgeCatalogueList(KnowledgeBaseDetailDTO knowledgeBaseDetailDTO) throws XbbException;

    /**
     * @Author mingliang
     * @Description 目录拖动排序接口
     * @Date 2022/6/27 16:21
     * @param knowledgeCatalogueSortDTO
     **/
    BaseVO knowledgeCatalogueSort(KnowledgeCatalogueSortDTO knowledgeCatalogueSortDTO) throws XbbException;

    /**
     * @Author mingliang
     * @Description 更新目录
     * @Date 2022/7/13 11:04
     * @param knowledgeCatalogueUpdateDTO
     **/
    BaseVO updateKnowledgeCatalogue(KnowledgeCatalogueUpdateDTO knowledgeCatalogueUpdateDTO) throws XbbException;

    /**
     * @Author mingliang
     * @Description 删除目录
     * @Date 2022/7/13 11:04
     * @param knowledgeCatalogueDelDTO
     **/
    BaseVO deleteKnowledgeCatalogue(KnowledgeCatalogueDelDTO knowledgeCatalogueDelDTO) throws XbbException;

    /**
     * @Author mingliang
     * @Description 知识库目录根据名字模糊查询
     * @Date 2022/7/13 11:04
     * @param knowledgeCatalogueNameLikeDTO
     **/
    KnowledgeCatalogueListVO knowledgeCatalogueNameLikeQuery(KnowledgeCatalogueNameLikeDTO knowledgeCatalogueNameLikeDTO) throws XbbException;

    /**
     * @Author mingliang
     * @Description 知识库云呼高亮查询
     * @Date 2022/7/13 11:05
     * @param knowledgeHighlighterListDTO
     **/
    KnowledgeHighlighterListVO highlighterList(KnowledgeHighlighterListDTO knowledgeHighlighterListDTO) throws XbbException;

    /**
     * @Author mingliang
     * @Description 使用次数自增长
     * @Date 2022/7/13 11:05
     * @param knowledgeBaseDetailDTO
     **/
    BaseVO hotAutoIncrement(KnowledgeBaseDetailDTO knowledgeBaseDetailDTO) throws XbbException;

    /**
     * @Author mingliang
     * @Description 热点15条数据显示
     * @Date 2022/7/15 14:03
     * @param knowledgeBaseDetailDTO
     **/
    KnowledgeHighlighterListVO newKnowledgeData(KnowledgeBaseDetailDTO knowledgeBaseDetailDTO) throws XbbException;

    KnowledgeDetailsVO cloudCallGetDetails(KnowledgeBaseDetailDTO knowledgeBaseDetailDTO) throws XbbException;

    KnowledgeCloudCallRedirectsVO cloudCallRedirects(BaseDTO baseDTO) throws XbbException;

    BaseVO baseBatchDelete(KnowledgeBaseBatchDeleteDTO knowledgeBaseBatchDeleteDTO) throws XbbException;

    BaseVO homePageShowKnowledge(KnowledgeShowDTO knowledgeShowDTO) throws XbbException;
}
